package com.yanqu.road.entity.activity.suitang.entity.user;

import com.yanqu.road.entity.activity.suitang.enums.eSuiTangWarType;

import java.math.BigInteger;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;

// 玩家轮次相关数据，每轮均会重置
public class CrossSuiTangUserRound {

    // ID
    private long userId;

    // 活动分组，每轮都会进行重新分组
    private int actGroupId;

    // 当前轮次
    private int round;

    // 当前所在战场
    private eSuiTangWarType warType;

    // 当前所在城市，0表示被淘汰了，开始在根据地
    private int cityId = 0;

    // 累计了多少军资还没领,改变轮次时，补发给玩家
    private Map<Long, BigInteger> posAddJunZiMap = new ConcurrentHashMap<>();

    // 上一次计算增加军资时间
    private long posAddJunZiTime;

    // 未读的个人战报 (被别人打的, 自己打的不算)
    private boolean unreadPlayerReport;

    // 未读的建筑战报
    private boolean unreadCityReport;

    // 连杀数
    private int continuousKill = 0;

    // 本轮获取的战功
    private volatile AtomicLong score = new AtomicLong(0);

    public int getActGroupId() {
        return actGroupId;
    }

    public void setActGroupId(int actGroupId) {
        this.actGroupId = actGroupId;
    }

    public int getRound() {
        return round;
    }

    public void setRound(int round) {
        this.round = round;
    }

    public eSuiTangWarType getWarType() {
        return warType;
    }

    public void setWarType(eSuiTangWarType warType) {
        this.warType = warType;
    }

    public int getCityId() {
        return cityId;
    }

    public void setCityId(int cityId) {
        this.cityId = cityId;
    }

    public Map<Long, BigInteger> getPosAddJunZiMap() {
        return posAddJunZiMap;
    }

    public void setPosAddJunZiMap(Map<Long, BigInteger> posAddJunZiMap) {
        this.posAddJunZiMap = posAddJunZiMap;
    }

    public long getPosAddJunZiTime() {
        return posAddJunZiTime;
    }

    public void setPosAddJunZiTime(long posAddJunZiTime) {
        this.posAddJunZiTime = posAddJunZiTime;
    }

    public boolean isUnreadPlayerReport() {
        return unreadPlayerReport;
    }

    public void setUnreadPlayerReport(boolean unreadPlayerReport) {
        this.unreadPlayerReport = unreadPlayerReport;
    }

    public boolean isUnreadCityReport() {
        return unreadCityReport;
    }

    public void setUnreadCityReport(boolean unreadCityReport) {
        this.unreadCityReport = unreadCityReport;
    }

    public int getContinuousKill() {
        return continuousKill;
    }

    public void setContinuousKill(int continuousKill) {
        this.continuousKill = continuousKill;
    }

    public AtomicLong getScore() {
        return score;
    }

    public void setScore(AtomicLong score) {
        this.score = score;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }
}
